🚀 Construction d'un Cluster de Calcul avec Raspberry Pi 🖥️
Ce tutoriel vous guide à travers les étapes nécessaires pour construire un cluster de calcul à l'aide de plusieurs Raspberry Pi, créant ainsi un puissant système de calcul distribué à faible coût.
🔧 Prérequis
- Plusieurs Raspberry Pi (modèle 3 ou supérieur recommandé)
- Carte microSD avec Raspberry Pi OS installé pour chaque Pi
- Un switch réseau
- Câbles Ethernet
- Accès à Internet
- Un ordinateur avec SSH pour se connecter aux Raspberry Pi
🛠️ Étape 1 : Préparation des Raspberry Pi
Commencez par mettre à jour chaque Raspberry Pi :
sudo apt-get update
sudo apt-get upgrade
Ensuite, vous pouvez configurer chaque Raspberry Pi avec un script pour automatiser certaines tâches :
# Script de configuration initiale pour Raspberry Pi
#!/bin/bash
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install -y vim htop git
sudo raspi-config nonint do_hostname $1
sudo systemctl enable ssh
Utilisez ce script pour configurer le nom d'hôte et activer SSH sur chaque Raspberry Pi. Remplacez $1 par le nom d'hôte souhaité.
🌐 Étape 2 : Configuration du Réseau
Connectez tous les Raspberry Pi au switch réseau en utilisant des câbles Ethernet. Assurez-vous que chaque Pi a une adresse IP unique.
Vous pouvez utiliser un autre script pour fixer les adresses IP :
# Script pour configurer une adresse IP statique
#!/bin/bash
sudo cp /etc/dhcpcd.conf /etc/dhcpcd.conf.backup
echo "interface eth0" | sudo tee -a /etc/dhcpcd.conf
echo "static ip_address=$1/24" | sudo tee -a /etc/dhcpcd.conf
echo "static routers=$2" | sudo tee -a /etc/dhcpcd.conf
echo "static domain_name_servers=$3" | sudo tee -a /etc/dhcpcd.conf
sudo systemctl restart dhcpcd
Exécutez ce script sur chaque Pi en fournissant l'adresse IP, la passerelle (généralement l'adresse du routeur), et le serveur DNS.
📦 Étape 3 : Installation de MPI (Message Passing Interface)
Installez OpenMPI sur chaque Raspberry Pi :
sudo apt-get install -y mpich
🔐 Étape 4 : Configuration SSH
Configurez les clés SSH pour permettre une connexion sans mot de passe entre les Pi :
ssh-keygen
ssh-copy-id pi@<adresse_ip_du_pi>
Pour automatiser cela, vous pouvez créer un script qui génère les clés et les distribue à chaque nœud :
# Script pour configurer SSH sans mot de passe
#!/bin/bash
ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
for ip in "$@"
do
ssh-copy-id pi@$ip
done
Utilisez ce script en passant les adresses IP de chaque Raspberry Pi comme paramètres.
⚙️ Étape 5 : Test du Cluster MPI
Créez un fichier "hostfile" listant les adresses IP de tous les Pi :
nano hostfile
Ajoutez les adresses IP de tous les Pi dans ce fichier. Ensuite, testez le cluster :
mpirun -np 4 --hostfile hostfile hostname
Cette commande devrait afficher le nom d'hôte de chaque Pi dans le cluster.
🖥️ Étape 6 : Exécution d'un Programme MPI
Créez un programme simple en C utilisant MPI :
#include <mpi.h>
#include <stdio.h>
int main(int argc, char** argv) {
MPI_Init(NULL, NULL);
int world_size;
MPI_Comm_size(MPI_COMM_WORLD, &world_size);
int world_rank;
MPI_Comm_rank(MPI_COMM_WORLD, &world_rank);
printf("Hello world from processor %d of %d\n", world_rank, world_size);
MPI_Finalize();
}
Compilez et exécutez ce programme sur le cluster :
mpicc -o hello_mpi hello_mpi.c
mpirun -np 4 --hostfile hostfile ./hello_mpi
Vous devriez voir un message de chaque Pi indiquant son rang et la taille totale du monde.
🔧 Dépannage et Optimisation
Si vous rencontrez des problèmes lors de la configuration du cluster, voici quelques conseils :
- Vérifiez que chaque Raspberry Pi a une adresse IP unique.
- Assurez-vous que le SSH est activé sur chaque Raspberry Pi.
- Testez les connexions SSH manuellement pour vous assurer qu'elles fonctionnent correctement.
- Utilisez
htoppour surveiller l'utilisation des ressources sur chaque Pi. - Expérimentez avec différents paramètres de
mpirunpour optimiser les performances.
🎉 Conclusion
Félicitations ! Vous avez maintenant un cluster de calcul fonctionnel utilisant plusieurs Raspberry Pi. Utilisez ce cluster pour des tâches de calcul intensif, des simulations ou pour apprendre les principes de base du calcul distribué.